package com.csair.platform.cit.service.dao;


import com.csair.invoice.common.base.vo.easyui.PageParam;

import java.util.List;
import java.util.Map;

/**
 * jpa：原生sql查询接口
 * @author liaoxiaojin
 *
 */
public interface IJpaBaseDao {

	/**
	 * 根据sql查询，不分页
	 * @param sql sql语句
	 * @param params 查询参数
	 * @return 结果
	 */
	List<Object[]> findBySql(String sql, Map<String, Object> params);
	
	/**
	 * 根据sql查询，分页
	 * @param sql sql语句
	 * @param params 查询参数
	 * @param pageParam 分页参数
	 * @return 分页结果
	 */
	List<Object[]> findPageBySql(String sql, Map<String, Object> params, PageParam pageParam);
	
	/**
	 * 根据sql查询记录数
	 * @param sql sql语句
	 * @param params 查询参数
	 * @return 记录数
	 */
	long countBySql(String countSql, Map<String, Object> params);
	
	
	List findBySql(String sql, Map<String, Object> params, Class entityAnnotationClz);
	
	List findPageBySql(String sql, Map<String, Object> params, PageParam pageParam, Class entityAnnotationClz);
}
